//选择排序

#include <stdio.h>
#include <stdlib.h>
#define NUM 12
void selection_sort(int a[], int len);//prototype

int main ()
{
//    printf("%d",RAND_MAX);
	int a[NUM] = {0};
	for (int i = 0; i < NUM; i++)
		a[i] = rand();//C 库函数 int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。
	for (int i = 0; i < NUM; i++)
		printf("%d ", a[i]);
	selection_sort(a, NUM);//调用
    
    printf("\n\n选择排序后的结果\n\n");
    
	for (int i = 0; i < NUM; i++)
		printf("%d ", a[i]);
}

void selection_sort(int a[], int len)
{
	int i, j, temp;

	for (i = 0 ; i < len - 1 ; i++)
	{
		int min = i;                  // 记录最小值，第一个元素默认最小
		for (j = i + 1; j < len; j++)     // 访问未排序的元素
		{
			if (a[j] < a[min])    // 找到目前最小值
			{
				min = j;    // 记录最小值
			}
		}
		if (min != i)
		{
			temp = a[min]; // 交换两个变量
			a[min] = a[i];
			a[i] = temp;
		}
	}
}

